﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HystereticBasic
{
    /// <summary>
    /// 数据类型
    /// </summary>
    public enum DataType
    {
        /// <summary>
        /// 所有滞回位移
        /// </summary>
        CyclicDisps = 1,

        /// <summary>
        /// 所有滞回力
        /// </summary>
        CyclicForces = 2,

        /// <summary>
        /// 骨架位移
        /// </summary>
        SkeletonDisps = 3,

        /// <summary>
        /// 骨架力
        /// </summary>
        SkeletonForces = 4,

        /// <summary>
        /// 骨架序号
        /// </summary>
        SkeletonOrder = 5,

        /// <summary>
        /// 滞回环最大位移
        /// </summary>
        CycleMaxDisp = 10,

        /// <summary>
        /// 滞回环最大位移 绝对值
        /// </summary>
        AbsCycleMaxDisp = 11,

        /// <summary>
        /// 光滑滞回曲线位移
        /// </summary>
        SmoothCyclicDisps = 12,

        /// <summary>
        /// 光滑滞回曲线力
        /// </summary>
        SmoothCyclicForces = 13,

        /// <summary>
        /// 光滑滞回曲线序号
        /// </summary>
        SmoothCyclicOrders = 14,

        /// <summary>
        /// 数值滞回曲线位移
        /// </summary>
        NumericalCyclicDisps = 15,

        /// <summary>
        /// 数值滞回曲线力
        /// </summary>
        NumericalCyclicForces = 16,

        /// <summary>
        /// 数值骨架曲线位移
        /// </summary>
        NumericalSkeletonDisps = 17,

        /// <summary>
        /// 数值骨架曲线力
        /// </summary>
        NumercalSkeletonForces = 18,

        /// <summary>
        /// 累积耗能面积
        /// </summary>
        AccumulateEnergy = 101,

        /// <summary>
        /// 累积耗能系数
        /// </summary>
        ViscousDampingRatio = 102,

        /// <summary>
        /// 割线刚度
        /// </summary>
        SecantStiffness = 103,

        /// <summary>
        /// 割线刚度退化系数
        /// </summary>
        SecantStiffnessRatio = 104,

        /// <summary>
        /// 卸载残余变形
        /// </summary>
        UnloadDisp = 110,

        /// <summary>
        /// 卸载残余变形 绝对值
        /// </summary>
        AbsUnloadDisp = 111,

        /// <summary>
        /// 卸载残余变形占比
        /// </summary>
        UnloadDispRatio = 112,

        /// <summary>
        /// 滞回环峰值承载力
        /// </summary>
        CycleMaxForce = 120,

        /// <summary>
        /// 滞回环峰值承载力 绝对值
        /// </summary>
        AbsCycleMaxForce = 121,

        /// <summary>
        /// 滞回环峰值承载力系数
        /// </summary>
        CycleMaxForceRatio = 122,

        /// <summary>
        /// 正向加载历史
        /// </summary>
        PositiveLoadingDisp = 201,

        /// <summary>
        /// 负向加载历史
        /// </summary>
        NegativeLoadingDisp = 202,

        /// <summary>
        ///滞回环序号
        /// </summary>
        CycleIndex = 301,

        /// <summary>
        /// 延性系数屈服力
        /// </summary>
        DuctilityYieldForce = 401,

        /// <summary>
        /// 延性系数屈服位移
        /// </summary>
        DuctilityYieldDisp = 402,

        /// <summary>
        /// 延性系数峰值力
        /// </summary>
        DuctilityPeakForce = 403,

        /// <summary>
        /// 延性系数峰值位移
        /// </summary>
        DuctilityPeakDisp = 404,

        /// <summary>
        /// 延性系数极限力
        /// </summary>
        DuctilityUltimateForce = 405,

        /// <summary>
        /// 延性系数极限位移
        /// </summary>
        DuctilityUltimateDisp = 406,

        /// <summary>
        /// 延性系数
        /// </summary>
        DuctilityFactor = 407,
    }

    /// <summary>
    /// 加载路径行为
    /// </summary>
    public enum LoadPathAction
    {
        /// <summary>
        /// 保留对象
        /// </summary>
        AddObj = 1,

        /// <summary>
        /// 移除路径
        /// </summary>
        Remove = 2,

        /// <summary>
        /// 加入下一加载路径
        /// </summary>
        AddToNextPath = 3,
    }

    /// <summary>
    /// 骨架软化段标定方法
    /// </summary>
    public enum SkeletonSoftenMethod
    {
        /// <summary>
        /// 最包络
        /// </summary>
        Envelope = 1,

        /// <summary>
        /// 优化的最包络
        /// </summary>
        ModEnvelope = 2,

        /// <summary>
        /// 切过所有滞回环
        /// </summary>
        SecantAllCycle = 3,
    }

    /// <summary>
    /// 计算方法
    /// </summary>
    public enum DuctilityMethod
    {
        /// <summary>
        /// 作图法
        /// </summary>
        General = 0,

        /// <summary>
        /// 能量等效法
        /// </summary>
        Energy = 1,

        /// <summary>
        /// Park 法
        /// </summary>
        Park = 2,

        /// <summary>
        /// 平均值
        /// </summary>
        AVG = 3,

        /// <summary>
        /// 未知状态
        /// </summary>
        Unknow = -1,
    }
}
